Einlesen lokaler Datendateien
Humboldt-Universität zu Berlin
Di. den 04.06.2024
Heute werden wir lernen, wie man:
.csv) erstellen und speichernreadr importierenBis jetzt haben wir gelernt, wie man…
dplyr-Verben zu verarbeitenpacmanpacman anstelle von install.packages() und library zu benutzen
p_load() nimmt Paketnamen als Argumentelibrary())install.packages() + library())tidyverse geladen und die neuen Pakete janitor und here installiert und geladen
?janitor und ?here in der Konsole ein.daten-Ordnerdaten hinzu (der genau gleich geschrieben ist).RProjects
Es gibt viele verschiedene Dateitypen, die Daten annehmen können, z. B. .xlsx, .txt, .csv, .tsv
.csv ist der typischste Dateityp und steht für: Comma Separated Values
So sieht eine einfache CSV-Datei aus, wenn man sie als Rohtext betrachtet
Student ID,Full Name,favourite.food,mealPlan,AGE
1,Sunil Huffmann,Strawberry yoghurt,Lunch only,4
2,Barclay Lynn,French fries,Lunch only,5
3,Jayendra Lyne,N/A,Breakfast and lunch,7
4,Leon Rossini,Anchovies,Lunch only,
5,Chidiegwu Dunkel,Pizza,Breakfast and lunch,five
6,Güvenç Attila,Ice cream,Lunch only,6
Abbildung 1: Source: Wickham et al. (2023) (all rights reserved)
Abbildung 2: Klicken Sie hier zum Hinzufügen und Herunterladen der Tabelle
groesse_geburtstag.csv auf Ihrem Computer, direkt in einem Ordner namens daten in unserem ProjektverzeichnisAufgabe 1: Saving a CSV
Beispiel 1
daten in Ihrem Projektordner (falls Sie das nicht schon getan haben).daten Ordner als groesse_geburtstag.csv.daten-Ordner und überprüfen Sie, ob die CSV-Datei dort ist.readrmüssen wir nun die Daten einlesen
wir müssen eine Funktion verwenden, die CSV-Daten liest, und angeben, wo sich die Daten in unserem RProject-Ordner befinden
Das readr-Paket (Teil von tidyverse) kann die meisten Datentypen einlesen und hat mehrere Funktionen für verschiedene Datentypen
| Größe | Geburtsmonat | L1 | Haustier | Was für ein Haustier? |
|---|---|---|---|---|
| 171 | 5 | Englisch | Lola | Hundin |
| 168 | 11 | Deutsch | keine | keine |
| 182 | 4 | Deutsch | N/A | NA |
| 190 | 8 | Deutsch | Knut | Kater |
| 170 | 10 | Deutsch | Emma | Hundin |
| 163 | 2 | Deutsch | Üzgür | Kater |
| 164 | 7 | Italienisch | Fipsy | Katze |
| 167 | 12 | Schwedisch | Anna | Fisch |
| 189 | 10 | Norwegisch | Arvid | Papagei |
| 163 | 7 | Russisch | Narzis | Kater |
| 159 | 11 | Punjabi | Mimi | Katze |
| 173 | 9 | Deutsch | Percy | Hund |
Aufgabe 2: readr
Beispiel 2
df_groesse.
df_ ist die Abkürzung für DataFrame; es ist eine gute Idee, ein Präfix vor Objektnamen zu verwenden, damit wir wissen, was jedes Objekt enthältread_csv werden einige Informationen in der Konsole ausgegeben. Was wird gedruckt?summary() oder head()heredaten zu finden ist?here() verschachtelnhere() startet, führen Sie here() aus[1] "/Users/danielapalleschi/Documents/IdSL/Teaching/SoSe24/B.A./r4ling_sose2024"
here packageImage source: Allison Horst (all rights reserved)
NA oder N/A Werte bemerkt
N/A wurde als Text in einer unserer Beobachtungen geschrieben, und so liest R es als solchesNA in R bezieht sich auf fehlende Daten (“Nicht verfügbar”)N/A in unseren df_groesse-Daten nicht wirklich als fehlender Wert gelesen wird.na = für die Funktion read_csv() verwenden, das der Funktion read_csv() mitteilt, welche Werte sie mit fehlenden Werten gleichsetzen soll# A tibble: 6 × 5
Größe Geburtsmonat L1 Haustier `Was für ein Haustier?`
<dbl> <dbl> <chr> <chr> <chr>
1 171 5 Englisch Lola "Hundin"
2 168 11 Deutsch keine "keine"
3 182 4 Deutsch <NA> ""
4 190 8 Deutsch Knut "Kater"
5 170 10 Deutsch Emma "Hundin"
6 163 2 Deutsch Üzgür "Kater"
"" war, wird als NA gelesenread_csv() leere Zellen als NA liest
read_csv() anweisen, mehr als eine Art von Eingabe als NA zu lesen, d.h. wir wollen es anweisen, "" und "N/A" als NA zu lesenc()NA’s einschließen# A tibble: 6 × 5
Größe Geburtsmonat L1 Haustier `Was für ein Haustier?`
<dbl> <dbl> <chr> <chr> <chr>
1 171 5 Englisch Lola Hundin
2 168 11 Deutsch <NA> <NA>
3 182 4 Deutsch <NA> <NA>
4 190 8 Deutsch Knut Kater
5 170 10 Deutsch Emma Hundin
6 163 2 Deutsch Üzgür Kater
`Was für ein Haustier?`)
clean_names() aus dem Paket janitor, das wir bereits geladen haben# A tibble: 12 × 5
grosse geburtsmonat l1 haustier was_fur_ein_haustier
<dbl> <dbl> <chr> <chr> <chr>
1 171 5 Englisch Lola Hundin
2 168 11 Deutsch <NA> <NA>
3 182 4 Deutsch <NA> <NA>
4 190 8 Deutsch Knut Kater
5 170 10 Deutsch Emma Hundin
6 163 2 Deutsch Üzgür Kater
7 164 7 Italienisch Fipsy Katze
8 167 12 Schwedisch Anna Fisch
9 189 10 Norwegisch Arvid Papagei
10 163 7 Russisch Narzis Kater
11 159 11 Punjabi Mimi Katze
12 173 9 Deutsch Percy Hund
head(df_groesse) ausführen, sehen Sie dann die bereinigten Spaltennamen?<- zuweisen.# A tibble: 6 × 5
Größe Geburtsmonat L1 Haustier `Was für ein Haustier?`
<dbl> <dbl> <chr> <chr> <chr>
1 171 5 Englisch Lola Hundin
2 168 11 Deutsch keine keine
3 182 4 Deutsch N/A <NA>
4 190 8 Deutsch Knut Kater
5 170 10 Deutsch Emma Hundin
6 163 2 Deutsch Üzgür Kater
Derzeit gibt es 2 Pipes, die in R verwendet werden können.
magrittr-Package-Pipe: %>%|>Cmd/Ctrl + Shift/Strg + M verwenden, um eine Pipe zu erzeugenAufgabe 3: pipes
Beispiel 3
groesse_geburtstag.csv erneut mit festen NAs und dann
clean_names() für den Datensatz aufzurufen, und danngroesse_geburtstag.csv erneut mit festen NAs, speichern Sie ihn als Objekt df_groesse, und dann
clean_names() auf den Datensatz anzuwenden.numerische Daten
as_factor()$ verwenden, um eine Spalte in einem Datenrahmen zu indizieren:tidyverse und die Funktion mutate() verwendenreadr hat weitere Funktionen, die ebenfalls einfach zu benutzen sind, man muss nur wissen, wann man welche benutzt
read_csv2() liest Semikolon-getrennte csv-Dateien (;)
, als Dezimaltrennzeichen verwenden (wie Deutschland)read_tsv() liest Tabulator-getrennte Dateien
Die Funktion read_delim() liest Dateien mit beliebigen Trennzeichen ein.
delim = an (z.B. read_delim(groesse_geburtstag.csv, delim = ","))Heute haben wir gelernt, wie man…
readr importiert ✅Lassen Sie uns nun dieses neue Wissen anwenden.
Anhang 6: Dateneinlesung auf der Website des Kurses.
Hergestellt mit R version 4.4.0 (2024-04-24) (Puppy Cup) und RStudioversion 2023.12.1.402 (Ocean Storm).
R version 4.4.0 (2024-04-24)
Platform: aarch64-apple-darwin20
Running under: macOS Ventura 13.2.1
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.12.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices datasets utils methods base
other attached packages:
[1] magick_2.8.3 here_1.0.1 janitor_2.2.0 lubridate_1.9.3
[5] forcats_1.0.0 stringr_1.5.1 dplyr_1.1.4 purrr_1.0.2
[9] readr_2.1.5 tidyr_1.3.1 tibble_3.2.1 ggplot2_3.5.1
[13] tidyverse_2.0.0
loaded via a namespace (and not attached):
[1] utf8_1.2.4 generics_0.1.3 renv_1.0.7 stringi_1.8.3
[5] hms_1.1.3 digest_0.6.35 magrittr_2.0.3 evaluate_0.23
[9] grid_4.4.0 timechange_0.3.0 fastmap_1.1.1 rprojroot_2.0.4
[13] jsonlite_1.8.8 fansi_1.0.6 scales_1.3.0 cli_3.6.2
[17] rlang_1.1.3 crayon_1.5.2 bit64_4.0.5 munsell_0.5.1
[21] withr_3.0.0 yaml_2.3.8 tools_4.4.0 parallel_4.4.0
[25] tzdb_0.4.0 colorspace_2.1-0 pacman_0.5.1 vctrs_0.6.5
[29] R6_2.5.1 lifecycle_1.0.4 snakecase_0.11.1 bit_4.0.5
[33] vroom_1.6.5 pkgconfig_2.0.3 pillar_1.9.0 gtable_0.3.5
[37] Rcpp_1.0.12 glue_1.7.0 xfun_0.43 tidyselect_1.2.1
[41] rstudioapi_0.16.0 knitr_1.46 htmltools_0.5.8.1 rmarkdown_2.26
[45] compiler_4.4.0
Woche 8 - Datenimport